package com.smzd.framework.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Access
 * 权限授予配置<br>
 * 该注解可以加在控制器上，也可以加在Mapping方法上，用于控制用户访问的权限。<br>
 * 要注意，@Access注解加在控制器上和Mapping方法上起着不完全相同的作用：<br>
 * <ol>
 * <li>当@Access加在控制器上时，表明要访问该控制器的Mapping方法需要用户登录，并且具备@Access所声明的角色。
 * 若角色未定义，则只要求用户已经登录。该声明控制适用于控制器中任何未加@Access的Mapping方法。</li>
 * <li>当@Access加在Mapping方法上的时候，则忽略控制器上的任何@Access配置，并且当没有在其中声明任何角色的时候，
 * 不意味着用户只需要登录就行了，而是相反，即不登录也可以访问。</li>
 * </ol>
 * 
 * @author YuZhongda
 *
 */

@Target(value={ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Access {
	String[] value() default {};
}
